package com.reliable.service.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;

/**
 * 交易记录实体
 */
@Data
@ApiModel(value = "交易记录")
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableName(value = "reliable_transaction_records",autoResultMap = true)
public class ReliableTransactionRecord extends BaseEntitys {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "交易ID", position = 0)
    @TableId(value = "transaction_id", type = IdType.NONE)
    private String transactionId;

    @ApiModelProperty(value = "任务ID", position = 1)
    private Long taskId;

    @ApiModelProperty(value = "会话ID", position = 2)
    private String sessionId;

    @ApiModelProperty(value = "账户类型", position = 3)
    private String accountType;

    @ApiModelProperty(value = "平台名称", position = 4)
    private String platformName;

    @ApiModelProperty(value = "账户分类", position = 5)
    private String accountCategory;

    @ApiModelProperty(value = "充值方式总结", position = 6)
    private String rechargeMethodSummary;

    @ApiModelProperty(value = "账号标识", position = 7)
    private String accountIdentifier;

    @ApiModelProperty(value = "二维码URL列表", position = 8)
    @TableField(value = "qr_code_urls", typeHandler = JacksonTypeHandler.class)
    private List<String> qrCodeUrls;

    @ApiModelProperty(value = "支付平台名称", position = 9)
    private String paymentPlatformName;

    @ApiModelProperty(value = "金额或数量", position = 10)
    private BigDecimal amountOrQuantity;

    @ApiModelProperty(value = "支付描述", position = 11)
    private String paymentDescription;

    @ApiModelProperty(value = "是否成功", position = 12)
    private Boolean isSuccess;

    @ApiModelProperty(value = "是否有回执", position = 13)
    private Boolean hasReceiptProof;

    @ApiModelProperty(value = "回执图片URL列表", position = 14)
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> proofImageUrls;

    @ApiModelProperty(value = "交易细节描述", position = 15)
    private String transactionSummary;

    @ApiModelProperty(value = "原始对话句子", position = 16)
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> relatedOriginalSentences;

    @ApiModelProperty(value = "受害者姓名", position = 17)
    private String victimName;

    @ApiModelProperty(value = "收件人姓名", position = 18)
    private String recipientName;

    @ApiModelProperty(value = "完整收货/交付地址", position = 19)
    private String fullAddress;

    @ApiModelProperty(value = "联系电话", position = 20)
    private String contactPhone;

    @ApiModelProperty(value = "交付方式", position = 21)
    private String deliveryMethod;

    @ApiModelProperty(value = "身份证号", position = 22)
    private String idNumber;

    // 非数据库字段
    @TableField(exist = false)
    @ApiModelProperty(value = "业务交易ID", position = 23)
    private String businessTransactionId;

    @TableField(exist = false)
    @ApiModelProperty(value = "业务会话ID", position = 24)
    private String businessSessionId;



}